Contact centers are employed by many enterprises to service customer contacts. A typical contact center includes a switch and/or server to receive and route incoming packet-switched and/or circuit-switched contacts and one or more resources, such as human agents and automated resources (e.g., Interactive Voice Response (IVR) units), to service the incoming contacts. Contact centers distribute contacts, whether inbound or outbound, for servicing to any suitable resource according to predefined criteria. In many existing systems, the criteria for servicing the contact from the moment that the contact center becomes aware of the contact until the contact is connected to an agent are customer-specifiable (Le., programmable by the operator of the contact center), via a capability called vectoring. Normally, in a present-day Automatic Call Distributor (ACD) when the ACD system's controller detects that an agent has become available to handle a contact, the controller identifies all predefined contact-handling queues for the agent (usually in some order of priority) and delivers to the available agent the highest-priority oldest contact that matches the agent's highest-priority queue.
Originally, contact centers were designed as single site operations. In other words, all of the contact center resources such as servers, agents, managers, and the like were located at a single site. A single site contact center was relatively easy to manage because all of the resources were essentially in a common environment. When an agent became available, the server controlling workflow was apprised of the availability almost instantly and could monitor the contact and agent queues in real-time.
As businesses become global and contact center job outsourcing becomes a viable option to many companies, contact centers are beginning to grow into multiple site operations. The resources for a contact center may be redundantly provided at each site such that every site can operate autonomously and communication between sites is not a requirement for operation. However, providing fully redundant contact center sites can become costly when the only additional resource really required is contact center agents. For this reason, many multiple site contact centers share resources. For example, one site may have all of the resources to be a complete contact center, whereas another site only has contact center agents or other resources with specific skills. The complete contact center receives all incoming contacts and routes the contacts to the other site having only agents or specialized resources. Under this scenario, contact center agent status information has to be relayed from the remote site to the ACD at the complete contact center. In fact, it is often the case in multiple site call centers that large amounts of information about the agents, skills (services), queues, and other status information needs to be transmitted between sites. An example of such a geographically distributed call center is described in US Patent Application No. 20060067506 to Flockhart et al., the entire disclosure of which is hereby incorporated herein by reference.
Functions that are performed as part of network management and in managing contact centers specifically include controlling, planning, allocating, deploying, distributing, coordinating, and monitoring the resources of a network. Network planning, traffic routing, load balancing, resource optimization, cryptographic key and/or license distribution, configuration management, fault management, and many other functions are examples of such data. A number of methods exist to support such network management function including, but not limited to, Simple Network Management Protocol (SNMP), Command Line Interfaces (CLIs), eXtensible Mark-up Language (XML) variants, Comm on Management Information Protocol (CMIP), and others.
Specifically, in fully distributed architectures such as Services Oriented Architectures (SOAs), contact centers and other large distributed telecommunications environments, such a method of data distribution would be particularly useful. Illustratively, in contact centers, large amounts of information about agents, skills (services), and queues need to be transmitted between the distributed contact center locations. The communications link should be established to the other sites by first finding them, then by making a connection (usually through firewalls), and finally providing real-time, encrypted communications with some guarantee of minimum latency.